package com.weishenai.customerassistant.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.weishenai.customerassistant.common.dto.MeterFactFinderStatisticsDto;
import com.weishenai.customerassistant.common.dto.MeterResultStatisticsDto;
import com.weishenai.customerassistant.common.dto.MeterTypeStatisticsDto;
import com.weishenai.customerassistant.entity.MetersResult;

import java.util.List;
import java.util.Map;

public interface MetersResultsService extends IService<MetersResult> {
    /**
     * 根据id删除结果
     *
     * @param id
     * @return
     */
    Integer delMetersResultById(Long id);

    /**
     * 插入一条结果数据
     */
    Integer insertOneMetersResult(MetersResult metersResult);

    /**
     * 分页查询所有的结果数据
     */
    IPage<MetersResult> selectAll(String substation,Integer pageNumber, Integer pageSize, String keyWord);

    IPage<MetersResult> selectByDate(String substation,String startDate, String endDate, Integer pageNum, Integer pageSize);

    MetersResult selectById(Long id);

    IPage<MetersResult> selectByState(String wechatId, String state, Integer pageNum, Integer pageSize);

    /**
     * 统计每个供电所多少人
     * @return MeterResultStatisticsDto
     */
    List<MeterResultStatisticsDto> listMeterResultStatistics();

    /**
     *
     * @param substation 供电所名称
     * @param type 查询类型： 1 近一天  2 近一周 3，近一个月 4.近一年
     * @return
     */
    List<MeterTypeStatisticsDto>  listMeterTypeStatisticsBySubstation(String substation,int type);

    /**
     *  统计当前供电所每个人的工作量
     * @param substation 供电所名称
     * @param type 查询类型： 1 近一天  2 近一周 3，近一个月 4.近一年
     * @return
     */
    List<MeterFactFinderStatisticsDto> listMeterFactFinderStatisticsBySubstation(String substation,int type);

    /**
     *  获取基本的统计信息
     * @param substation 供电所名称
     * @return
     */
    Map<Object,Object> getBaseStatisticsInfo(String substation);

    Map<Object,Object> getFactFinderWeekJob(String substation, String fact);


}
